from typing import override

from abstract import *

__all__ = [
    "Coffee", "Tea", "CoffeeWithHook", "TeaWithHook"
]

class Coffee(CaffeineBeverage):
    def brew(self):
        print("Dripping Coffee through filter")

    def add_condiments(self):
        print("Adding Sugar and Milk")


class Tea(CaffeineBeverage):
    def brew(self):
        print("Steeping the tea")

    def add_condiments(self):
        print("Adding Lemon")


class CoffeeWithHook(CaffeineBeverageWithHook):
    def brew(self):
        print("Dripping Coffee through filter")

    def add_condiments(self):
        print("Adding Sugar and Milk")

    @override
    def customer_wants_condiments(self) -> bool:
        answer = input("Would you like milk and sugar with your coffee (y/n)? ")
        if answer.lower().startswith('y'):
            return True
        else:
            return False


class TeaWithHook(CaffeineBeverageWithHook):
    def brew(self):
        print("Steeping the tea")

    def add_condiments(self):
        print("Adding Lemon")

    @override
    def customer_wants_condiments(self) -> bool:
        answer = input("Would you like lemon with your tea (y/n)? ")
        if answer.lower().startswith('y'):
            return True
        else:
            return False